الگوریتمهای هشینگ یک سلاح مهم در جعبه ابزار رمزنگاری هستند. آنها در سراسر اینترنت وجود دارند و اغلب برای امنیت گذرواژه مورد استفاده قرار میگیرند. الگوریتم هشینگ مهمترین بخش جدایی ناپذیر ارزهای دیجیتال مانند بیت کوین و لایت کوین است.
الگوریتم هشینگ
ویژگی اصلی یک الگوریتم هشینگ عملکرد ثابت و یک طرفهٔ آن است، به گونهای که امکان خروجی گرفتن از ورودی وجود دارد اما برعکس این کار ناممکن است. این ویژگی درست مثل رمزنگار منحنی بیضایی است که در آن امکان گرفتن کلید خصوصی از کلید عمومی وجود ندارد. دیگر ویژگی مهم آن این است که یک ورودی مشابه و یک خروجی مشابه را ایجاد میکند.
بیشترین الگوریتمهای هشینگ شامل SHA و RIPEMD میشوند که همگی از خانوادهٔ MD4 هستند. الگوریتم MD4 توسط رونالد ریوست طراحی شد و به توسعهدهندگان این اجازه را داد تا نرم افزارهای خود را به راحتی پیاده سازی کنند. الگوریتمهای MD4 و SHA برای اینکه بتوانند عملکرد خود را از طریق ورودی به خروجی تنظیم کنند، نیاز به استفاده از یک متغیر ۳۲ بیتی با ساختار تابع بولین از قبیل اپراتورهای AND، OR و XOR دارند.
کارکرد الگوریتم هشینگ به شکل زیر است - برای نمونه من الگوریتم SHA1 را مثال زدهام:
۱. پنج متغیر بسازید
- H0 - 01100111010001010010001100000001
- H1 - 11101111110011011010101110001001
- H2 - 10011000101110101101110011111110
- H3 - 00010000001100100101010001110110
- H4 - 11000011110100101110000111110000
۲. سپس کلمهای برای فرایند هش انتخاب کنید. در اینجا من کلمه رمزنگار را انتخاب کردهام.
۳. کلمه را به ASCII تبدیل کنید.
- کد استاندارد آمریکایی برای مبادلهٔ اطلاعات". هر حرف یک عدد به آن اختصاص دارد.
- رمزنگار - ۶۷-۸۲-۸۹-۸۰-۸۴-۷۹
۴. کد ASCII را به اعداد صفر و یک تبدیل کنید.
- CRYPTO – 01000011-01010010-01011001-01010000-01010100-01001111
۵. کاراکترها را وارد کرده و عدد ۱ را به انتها اضافه کنید.
- CRYPTO – 0100001101010010010110010101000001010100010011111
۶. اعداد صفر را اضافه کنید تا پیغام، عددی بین ۴۴۸ و ۵۱۲ شود.
(حساب قدر مطلقی شکل که دقیقا شبیه به ساعت میماند با این تفاوت که عقربهها به جای ۲۴ ساعت، ۵۱۲ ساعت را میشمارند). بنابراین یک پیغام ۴۸ بیتی با افزودن عدد ۱ نیاز به ۳۹۹ صفر دارد، و اگر پیغام ۶۴ بیت میبود (یا ۵۱۲ بیت) نیاز به ۴۴۷ صفر داشت.
۷. افزودن طول پیغام اصلی به قسمت ۶۴ بیتی که بعد از یک حساب قدر مطلقی ۴۴۸ شکل بجا مانده است.
- پیغام شامل ۴۸ کاراکتر (حرف) است که به زبان صفر و یک میشود ۱۱۰۰۰۰. بنابراین این پیغام در انتهای قسمت ۶ قرار میگیرد.
۸. پیغام را به ۱۶ قسمت ۳۲ بیتی تبدیل کنید.
۹. کاراکتر ۱۶*۳۲ بیتی را با استفاده از یک تابع حلقوی گام به گام به ۸۰ کلمه تبدیل کنید.
برای این کار ابتدا چهار کلمه را برای اولین حرکت از طریق حلقه انتخاب کنید که این کار از مرحلهٔ ۸ شروع میشود و کلمات ۱،۳،۹،۱۴ را به ترتیب شامل میشود. برای دومین انتخاب از حلقه، مرحله از گام هشتم شروع میشود و کلمات ۲،۴،۱۰،۱۵ را به ترتیب شامل میشود.
بیشتر بخوانید: بیشتر بخوانید: هدر بلاک (Block Header) چیست؟
فرایند بعدی XoR کردن کلمات است. Xoring یک تابع محاسباتی پایه است که خروجی q را تنها زمانی میدهد که دو ورودی در آن موقعیت عدد ۱ را دارا باشند. در غیر این صورت خروجی صفر میشود. این فرایند تا رسیدن به ۸۰ کلمه تکرار میشود.
۱۰. گام بعدی اجرای مجموعهای از توابع بر روی کلمات
در یک دستور خاص است که شامل کارکرد پنج متغیری که در مرحلهٔ نخست به آن اشاره کردیم میشود. کارکردها ترکیبی از اپراتورهای AND، OR، NOT هستند.
۱۱. متغیرهای H را به hex تبدیل کنید
۱۲. متغیرها را در کنار هم بگذارید تا چکیدهٔ هش تکمیل شود
- 44a9713350e53858f058463d4bf7f1e542d9ca4b
این فرایند اصلی سیستم هشینگ است؛ به گونهای که یک عدد را به سادگی به زبان صفر و یک تبدیل میکند و سپس مجموعهای از توابع ساده را اجرا میکند که از طریق فرایندهای استاندارد و فرایندهای bus از قبیل AND، XOR، NOT، Rotate، OR عمل میکنند. این بخشی از دلایلی است که سخت افزارهای ماینینگ یا چیپستهای اپلیکیشنهای خاص میتوانند به گونهای طراحی شوند که سیستم هشینگ بهینه شود.
در الگوریتم SHA-256 چیپستها به گونهای طراحی شدهاند تا در طول سرعت بخشیدن در ایجاد هشینگ از طریق ورودی، بهینه سازی شوند. در ماینینگ شما میتوانید با افزودن پارامترهای نانس، هشهای زیادی را محاسبه کنید و شانس دریافت پاداش خود را افزایش دهید. در فرایند استخراج هر ماینری که بتواند زودتر از سایرین کدهای بلاک را حدس بزند برنده است و به پاداش تعلق میگیرد.
:: برچسبها:
الگوریتم هشینگ ,
:: بازدید از این مطلب : 116
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0